import axios from 'axios'
import { useUserStore } from '@/stores/user.js'

// 创建axios实例
const instance = axios.create({
  baseURL: 'http://localhost:19090',
  timeout: 10000, // 请求超时时间
  headers: {
    'Content-Type': 'application/json'
  }
})

// 请求拦截器
instance.interceptors.request.use(
  (config) => {
    // 在发送请求之前做些什么
    // 从Pinia store中获取用户的authorization令牌
    const userStore = useUserStore()
    
    // 如果用户已登录且有authorization令牌，则添加到请求头中
    if (userStore.isLoggedIn && userStore.authorization) {
      config.headers.Authorization = userStore.authorization
    }
    
    return config
  },
  (error) => {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 响应拦截器
instance.interceptors.response.use(
  (response) => {
    // 如果响应状态码为200，则返回响应数据的data字段
    if (response.status === 200) {
      return response.data
    }
    return response
  },
  (error) => {
    // 如果响应中有错误信息，则打印错误信息
    if (error.response && error.response.data && error.response.data.message) {
      console.log(error.response.data.message)
    }
    return Promise.reject(error)
  }
)

export default instance